The present invention relates generally to a system and method for maintaining presence and communicating over a computer network using the HTTP protocol. More particularly, the present invention relates to a system and method for maintaining communications information reflecting current online presence including dynamic session information as determined using the HTTP protocol and using the communications information to facilitate communication over the computer network.
The usage of computer networks, particularly the Internet, has grown dramatically and is expected to continue to grow at a rapid pace. This surge in network usage has brought with it a corresponding increase in the prevalence and importance of real-time network communications methods such as instant messaging/type chat, voice over Internet protocol (VoIP) and video over Internet protocol. These methods and similar ones will play an increasingly important role in the way computers and people communicate.
In order for two computers to communicate using the Internet, a calling computer must know or be able to discover at least an Internet Protocol (IP) address of a callee. The Domain Name System (DNS) facilitates this process by resolving (i.e., translating or converting) a “friendly name” (i.e., a recognizable set of characters rather than a numerical IP address) into a corresponding IP address. Thus, human users generally do not need to know or even see the underlying IP address associated with computers connected to the Internet or other computer networks.
Many Internet users access the network using a personal computer (PC) and an Internet Service Provider (ISP). It is a common practice for an ISP to dynamically assign an IP address that is valid only during the interval in which the PC is connected to the ISP. Furthermore, there is no static identifier associated with the computer and available through DNS. Accordingly, in many instances, users do not know their own dynamically assigned Internet address, nor do they have a DNS name assigned to their computer. As a result, most Internet users are unable to supply any static, unique identifier that can be repeatedly used to establish a communications session with their computer via the Internet.
A mechanism referred to as User Location Service (ULS) provides one solution to this problem. ULS includes a dynamic directory containing records that map some unique user identifier to a currently assigned IP address. ULS places no restriction (other than uniqueness) on the selected static name. Individual computers are responsible for contacting and logging in to a ULS server. The act of logging in causes a new ULS record to be created. The ULS record is deleted when the computer logs out of ULS or fails to continue to refresh its record.
Two significant problems with ULS are its inability to scale and the completely non-standard way in which static names are resolved to IP addresses. Using non-standard name resolution techniques prevents pre-existing applications from accessing intermittently connected devices in an automated manner. For example, a ULS identifier string cannot be resolved by DNS or by an individual's web browser software. Existing applications such as web browsers are typically only able to access resources using local file names, actual IP addresses, and DNS names. To contact intermittently connected devices using prior art techniques, the particular ULS server containing the address must be contacted to resolve the address. Thus, ULS registered devices are typically not directly accessible using many existing applications.
The inability to scale well presents even greater problems. A computer wishing to resolve a ULS name has no way of knowing which ULS site may currently contain the proper record. There is no central authority under which all existing ULS sites may be automatically searched. Consequently, an exhaustive search of all available ULS sites is currently required. Worse yet, there is no current mechanism by which an application can determine the total set of ULS sites on a given day. Thus, newly added sites only further complicate an effort to locate a user having an unknown ULS connection.
Dynamic DNS provides another solution. Dynamic DNS is very similar to ULS, except that dynamic DNS associates a static domain name (e.g., username.ddns.net) with a user's currently assigned IP address. As with ULS, the act of logging in to a dynamic DNS system causes a new DNS record to be created associating the user's static domain name with the user's current IP address. The DNS record is deleted when the computer logs out or fails to continue to refresh its record. In this way, a user desiring to communicate with another user logged in to a dynamic DNS system can perform a standard DNS lookup on that user's static domain name to ascertain the user's current IP address.
By replacing the non-standard name resolution techniques of ULS with standard DNS naming, dynamic DNS solved some of the problems inherent in ULS. However, there are still disadvantages to using dynamic DNS as a means of locating and communicating with an intermittently connected user. First, dynamic DNS only provides a user's current IP address. It does not provide complete dynamic session information for a user, including such information as a user's host box identifier, TCP port number on which to be reached, and session ID. Knowledge of a user's complete dynamic session information facilitates the use of multiple possible forms of communication (e.g., type chat, voice, video, etc.).
Second, knowledge of a user's dynamic IP address through dynamic DNS only allows for limited forms of communication. For example, a user can take an IP address and communicate using an H323 protocol communications application such as Microsoft NetMeeting. A user could not, however, type the IP address into a web browser and communicate using the HTTP protocol. The inability to allow HTTP communications is particularly disadvantageous in that HTTP communications can take place even with users located behind firewalls and proxy servers—security measures that are growing more and more prevalent today. By contrast, H323 communications will not easily function through a firewall, unless application modifications are made.
Existing type chat/instant messaging applications are also disadvantageous in that they do not operate using the HTTP protocol. These applications typically require the download of large software programs that operate using proprietary formats that are incompatible with one another, precluding the interoperability of the various applications. Moreover, the applications do not transmit messages using the HTTP protocol. Indeed, some do not even send messages using Transmission Control Protocol/Internet Protocol (TCP/IP), the transport protocol underlying the HTTP protocol and most other Internet transmissions, but instead use User Datagram Protocol (UDP). These type chat/instant messaging applications therefore do not function behind most firewalls and proxy servers.
There is thus a need for a communications system that will allow the association of a static name with a user's complete dynamic session information. There is also a need for a communications system that will facilitate multiple forms of communication with a user given knowledge of only the user's static name. There is also a need for a communications system that will facilitate multiple forms of communication using the HTTP protocol, and thus will allow communication with users and devices located behind firewalls and proxy servers.